package com.spsoft.core.model.leqidmz.param;

import com.spsoft.core.annotation.EnumValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

@ApiModel(value = "查询数电红字确认单列表信息")
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryRedConfirmListParam extends BaseUserInfoParam {

    /**
     * 用户角色类型
     */
    @ApiModelProperty(value = "用户角色类型", required = true)
    @NotBlank(message = "用户角色类型不能为空")
    @EnumValue(strValues = {"0", "1"}, message = "用户角色类型只能是：0 销方 1 购方")
    private String yhjslx;

    /**
     * （销售方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（销售方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String xsfnsrsbh;

    /**
     * （销售方）名称
     */
    @ApiModelProperty(value = "（销售方）名称")
    private String xsfmc;

    /**
     * （购买方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（购买方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String gmfnsrsbh;

    /**
     * （购买方）名称
     */
    @ApiModelProperty(value = "（购买方）名称")
    private String gmfmc;

    /**
     * 录入方身份
     */
    @ApiModelProperty(value = "录入方身份")
    private String lrfsf;

    /**
     * 录入日期起 yyyy-MM-dd
     */
    @ApiModelProperty(value = "录入日期起")
    private String lrrqq;

    /**
     * 录入日期止 yyyy-MM-dd
     */
    @ApiModelProperty(value = "录入日期止")
    private String lrrqz;

    /**
     * 蓝字发票代码
     */
    @ApiModelProperty(value = "蓝字发票代码")
    private String lzfpdm;

    /**
     * 蓝字发票号码
     */
    @ApiModelProperty(value = "蓝字发票号码")
    private String lzfphm;

    /**
     * 红字确认单编号
     */
    @ApiModelProperty(value = "红字确认单编号")
    private String hzfpxxqrdbh;

    /**
     * 红字确认信息状态代码
     */
    @ApiModelProperty(value = "红字确认信息状态代码")
    @EnumValue(strValues = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10"},
               message = "红字确认信息状态代码只能是：01 无需确认 02 销方录入待购方确认 03 购方录入待销方确认 04 购销双方已确认 05 作废（销方录入购方否认） " +
                         "06 作废（购方录入销方否认） 07 作废（超72小时未确认） 08（发起方撤销） 09 作废（确认后撤销） 10 作废（异常凭证）")
    private String hzqrxxztDm;

    /**
     * 发票票种代码
     */
    @ApiModelProperty(value = "发票票种代码", required = true)
    @EnumValue(strValues = {"01", "02", "03", "04", "05", "06"},
               message = "发票票种代码只能是：01 增值税专用发票 02 普通发票 03 机动车统一销售发票 04二手车统一销售发票 05 铁路客票电子发票 06 航空运输电子客票行程单")
    private String fppzDm;

    /**
     * 页码
     */
    @ApiModelProperty(value = "页码")
    private Integer pageNumber;

    /**
     * 每页数量
     */
    @ApiModelProperty(value = "每页数量")
    private Integer pageSize;
}
